home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / presto / presto10.lha / src / main.h < prev    next >
C/C++ Source or Header  |  1991-12-11  |  2KB  |  60 lines

  1. #ifndef __presto__main_h__
  2. #define __presto__main_h__
  3.  
  4. //
  5. // Modification History:
  6. // 
  7. // 12-Jan-90   JEF
  8. // Add support for processor affinity on Sequent Symmetry.
  9. //
  10. // 04-Jan-90   JEF
  11. // Add stacksize, get_stacksize(), and get_numprocessors().
  12. // Move most of constructor into run() and invoke run() from main
  13. // function after constructor returns.  This allows us to access the
  14. // above new functions from elsewhere in the program.
  15. //
  16.  
  17. class Main    {
  18.     int numprocessors;        // # scheduling processors
  19.     int nummainthreads;        // # threads in Main::main()
  20.     int mainstacksizes;        // size of stack for each of the
  21.                                         //   nummainthreads threads
  22.     int stacksize;            // size of stack for all other threads
  23.     int quantum;            // scheduling quantum
  24. #ifdef i386
  25.     int affinity;                   // if non-zero, processor affinity will
  26.                                         //   be attempted via tmp_affinity
  27. #endif /* i386 */
  28. #ifdef PROFILE
  29.     int numprofilers;
  30. #endif
  31.     int argc;            // argc from main
  32.     char **argv;            // argv from main
  33.     char **envp;            // envp from main
  34. public:
  35.     Main(int ac, char **av, char **ep);
  36.     ~Main();
  37.     int  preallocthreads(int cnt, int sz = DEFSTACKSIZ);
  38.     void run ();
  39.     int init();        // user provides 
  40.     int main();            // init, main, done...
  41.     int done();        //
  42.     int get_numprocessors ()
  43.         { return numprocessors; }
  44.     int get_nummainthreads ()
  45.         { return nummainthreads; }
  46.     int get_mainstacksizes ()
  47.         { return mainstacksizes; }
  48.     int get_stacksize ()
  49.         { return stacksize; }
  50. #ifdef i386
  51.     int get_affinity ()
  52.         { return affinity; }
  53. #endif /* i386 */
  54. };
  55.  
  56.  
  57. #define MAINNAME    "MAIN"
  58.  
  59. #endif /* __presto__main_h__ */
  60.